home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
pc
/
LOGIC Apple II 5.25" Library - DOS Part 3
/
DOS069.dsk
/
MAROONED IN SPACE.bas
< prev
next >
Wrap
BASIC Source File
|
2012-02-16
|
10KB
|
288 lines
0 REM ************************
1 REM ** DONATED BY **
2 REM ** DAVY DAVIS **
3 REM ** AND **
4 REM ** ELUISE MARVIN **
6 REM ************************
7 REM
30 TEXT : HOME : VTAB 10: HTAB 11: FLASH : PRINT "MAROONED IN SPACE": NORMAL
35 VTAB 12: HTAB 11: PRINT "BY WILLIAM COLSHER"
40 FOR I = 1 TO 1500: NEXT I
45 HOME : VTAB 12: PRINT "DO YOU NEED INSTRUCTIONS";: GET IN$
50 IF LEFT$(IN$,1) < >"N" THEN GOSUB 3000
54 TEXT : NORMAL : RESTORE
55 HOME : VTAB 12: PRINT "WILL YOU USE THE ENGLISH": PRINT "OR METRIC SYSTEM";: GET S$
58 O = 0:Z = 0
60 IF LEFT$(S$,1) = "E" THEN B = 1: GOTO 75
65 IF LEFT$(S$,1) = "M" THEN B = 1.61: GOTO 75
70 PRINT : PRINT "PLEASE TYPE 'ENGLISH' OR 'METRIC'";: INPUT S$: GOTO 60
75 GOSUB 4000
80 A$ = " LOGIC UNIT DAMAGED LOGIC UNIT DAMAGED "
85 B$ = "HUMAN INTERVENTION REQUIRED HUMAN INTERVENTION REQUIRED "
90 C$ = "ORBIT OVER UNKNOWN PLANET ORBIT OVER UNKNOWN PLANET "
95 D$ = "PREPARING PLANET SURVEY DATA PREPARING PLANET SURVEY DATA "
100 POKE 32,1: POKE 33,28: POKE 34,1: POKE 35,22
105 GOSUB 5000: HOME
110 INVERSE : FOR A = 1 TO 2: PRINT " ";: NEXT A
115 VTAB 2: HTAB 10: FLASH : PRINT "EMERGENCY": NORMAL
120 POKE 34,3: HOME
130 L = 100
135 FOR X = 1 TO L
140 S = L -X
145 VTAB 8: PRINT MID$ (A$,X,40)
150 VTAB 10: PRINT MID$ (B$,X,40)
155 VTAB 12: PRINT MID$ (C$,X,40)
160 VTAB 14: PRINT MID$ (D$,X,40)
164 IF S >39 THEN 185
165 VTAB 8: PRINT MID$ (A$,1,39 -S)
170 VTAB 10: PRINT MID$ (B$,1,39 -S)
175 VTAB 12: PRINT MID$ (C$,1,39 -S)
180 VTAB 14: PRINT MID$ (D$,1,39 -S)
185 NEXT X
195 FLASH : GOSUB 5000: NORMAL : GOSUB 5000: GOSUB 5000: GOSUB 5000: INVERSE : GOSUB 5000: NORMAL : GOSUB 5000
200 P = INT( RND(1) *9) +1
210 FOR A = 1 TO 9: FOR C = 1 TO 7: READ P(A,C): NEXT C,A
220 O = P
230 HOME
240 A$ = " PLANETARY SURVEY DATA"
245 FOR X = 1 TO LEN(A$)
250 PRINT MID$ (A$,X,1);
255 FOR I = 1 TO 30: NEXT I
260 NEXT X
265 PRINT " "
270 PRINT "MASS="
275 POKE 34,5
278 M = P(P,1)/100
279 HOME
280 FOR X = 70 TO 2 STEP -1
290 Q = M *X
292 IF Q <1 THEN Q = Q *X: GOTO 292
295 IF Q >255 THEN Q = 255
300 PRINT ; SPC( Q);P(P,1)/X
310 FOR I = 1 TO 25: NEXT I
320 HOME
330 NEXT X
340 VTAB 5: HTAB 1: PRINT "MASS=";P(P,1);" (EARTH=1)"
345 HOME
350 GOSUB 2000
360 FLASH : GOSUB 5000: NORMAL : GOSUB 5000
370 HOME
400 G = P(P,2)/100
405 PRINT "SURFACE GRAVITY=": POKE 34,6
410 FOR X = 70 TO 2 STEP -1
420 Q = G *X
430 IF Q <1 THEN Q = Q *X: GOTO 430
440 IF Q >255 THEN Q = 255
450 PRINT ; SPC( Q);P(P,2)/X
460 FOR I = 1 TO 25: NEXT I
470 HOME : NEXT X
475 VTAB 6: HTAB 1
480 PRINT "SURFACE GRAVITY=";P(P,2);"(EARTH=1)"
485 HOME
490 GOSUB 2000
495 INVERSE : GOSUB 5000: NORMAL : GOSUB 5000: HOME
500 V = P(P,3) *B/1000
505 PRINT "ESCAPE VELOCITY=": POKE 34,7
510 FOR X = 70 TO 2 STEP -1
520 Q = G
530 IF Q <1 THEN Q = Q *X: GOTO 530
540 IF Q >255 THEN Q = 255
550 PRINT ; SPC( Q);P(P,3) *B/X;
552 IF B = 1 THEN PRINT "MPS";
554 IF B = 1.61 THEN PRINT "KPS";
560 FOR I = 1 TO 25: NEXT I
570 HOME : NEXT X
575 VTAB 7: HTAB 1
580 PRINT "ESCAPE VELOCITY=";P(P,3) *B;
582 IF B = 1 THEN PRINT "MPS"
584 IF B = 1.61 THEN PRINT "KPS"
588 HOME
590 GOSUB 2000
595 FLASH : GOSUB 5000: NORMAL : GOSUB 5000: HOME
600 D = P(P,4) *B/1000
605 PRINT "DIAMETER=": POKE 34,8
610 FOR X = 70 TO 2 STEP -1
620 Q = D
630 IF Q <1 THEN Q = Q *X: GOTO 630
640 IF Q >255 THEN Q = 255
650 PRINT ; SPC( Q);P(P,4) *B/X;
652 IF B = 1 THEN PRINT "MILES";
654 IF B = 1.61 THEN PRINT "KILOMETERS";
660 FOR I = 1 TO 25: NEXT I
670 HOME : NEXT X
675 VTAB 8: HTAB 1
680 PRINT "DIAMETER=";P(P,4) *B;
682 IF B = 1 THEN PRINT " MILES"
684 IF B = 1.61 THEN PRINT " KILOMETERS"
688 HOME
690 GOSUB 2000
695 FLASH : GOSUB 5000: INVERSE : GOSUB 5000: NORMAL : GOSUB 5000
700 Q = P(P,5)/10: IF Q = 0 THEN Q = 1
704 HOME
705 PRINT "MOONS=": POKE 34,9
710 FOR X = 70 TO 2 STEP -1
730 IF Q <1 THEN Q = Q *X: GOTO 630
740 IF Q >255 THEN Q = 255
750 PRINT ; SPC( Q);P(P,5)/X;
760 FOR I = 1 TO 25: NEXT I
770 HOME : NEXT X
775 VTAB 9: HTAB 1
780 PRINT "MOONS=";P(P,5)
785 HOME
790 GOSUB 2000
795 FLASH : GOSUB 5000: NORMAL : GOSUB 5000: GOSUB 5000
800 Q = P(P,6)/100
805 HOME : PRINT "YEAR=": POKE 34,10
810 FOR X = 70 TO 2 STEP -1
830 IF Q <1 THEN Q = Q *X: GOTO 830
840 IF Q >255 THEN Q = 255
850 PRINT ; SPC( Q);P(P,6)/X;
860 FOR I = 1 TO 25: NEXT I
870 HOME : NEXT X
875 VTAB 10: HTAB 1
880 PRINT "YEAR=";P(P,6);" (EARTH=1)"
885 HOME
890 GOSUB 2000
895 FLASH : GOSUB 5000: INVERSE : GOSUB 5000: NORMAL : GOSUB 5000
900 Q = P(P,7) *B/100
905 HOME : PRINT "DISTANCE TO SUN=": POKE 34,11
910 FOR X = 70 TO 2 STEP -1
930 IF Q <1 THEN Q = Q *X: GOTO 930
940 IF Q >255 THEN Q = Q/X: GOTO 940
950 PRINT ; SPC( Q);P(P,6) *B *10000/X
960 FOR I = 1 TO 25: NEXT I
970 HOME : NEXT X
975 VTAB 11: HTAB 1
978 PRINT "DISTANCE TO SUN=";P(P,7) *B *10000;
979 IF B = 1 THEN PRINT "MILES"
980 IF B = 1.61 THEN PRINT "K.S"
984 GOSUB 2000
985 HOME
990 IF Z = 1 THEN 1130
1000 HOME
1010 SPEED= 50: PRINT "I NOW HAVE";: SPEED= 75: PRINT " ALL NECESSARY"
1020 SPEED= 100: PRINT "INFORMATION."
1030 PRINT
1040 SPEED= 125: PRINT "THE PLANET";: SPEED= 150: PRINT " WE ARE ";: SPEED= 175: PRINT "ORBITING IS:"
1050 SPEED= 255
1060 PRINT : FLASH
1070 ON P GOSUB 1210,1220,1230,1240,1250,1260,1270,1280,1290
1080 NORMAL
1090 PRINT
1100 INVERSE : PRINT "I CAN NOW PLOT"
1110 PRINT "A COURSE FOR EARTH."
1120 FOR I = 1 TO 1000: NEXT I
1130 FLASH : PRINT "DO YOU WANT TO PLAY AGAIN?";
1140 GET PA$
1150 IF LEFT$(PA$,1) = "Y" THEN 54
1160 NORMAL : TEXT : HOME : END
1210 PRINT "MERCURY": RETURN
1220 PRINT "VENUS": RETURN
1230 PRINT "MARS": RETURN
1240 PRINT "CERES": RETURN
1250 PRINT "PALLAS": RETURN
1260 PRINT "JUPITER": RETURN
1270 PRINT "SATURN": RETURN
1280 PRINT "URANUS": RETURN
1290 PRINT "NEPTUNE": RETURN
2000 REM ASK WHAT PLANET
2010 IF Z = 1 THEN RETURN
2020 VTAB 22: PRINT " WHAT PLANET ARE WE ORBITING"
2030 X = PEEK( -16384): IF X <177 OR X >185 THEN 2030
2035 POKE -16368,0
2040 KEY = X -176
2045 HOME
2050 IF KEY = P THEN 2500
2055 A$ = "DATA NOT": GOSUB 2400
2060 POKE 32,3:A$ = "CONSISTENT": GOSUB 2400
2065 POKE 32,5:A$ = "WITH": GOSUB 2400
2070 POKE 32,7:A$ = "INFORMATION": GOSUB 2400
2072 POKE 32,9:A$ = "ON THAT": GOSUB 2400
2074 POKE 32,11:A$ = "PLANET": GOSUB 2400
2076 POKE 32,16:A$ = "MORE DATA": GOSUB 2400
2080 POKE 32,18:A$ = "IS IN": GOSUB 2400
2090 POKE 32,20:A$ = "PREPARATION": GOSUB 2400
2100 POKE 32,1: RETURN
2400 VTAB 11
2410 FOR X = 1 TO LEN(A$)
2420 PRINT MID$ (A$,X,1)
2430 FOR T = 1 TO 25: NEXT T
2440 NEXT X
2450 RETURN
2500 SPEED= 100: HTAB 1: PRINT "MY DATA": HTAB 2: PRINT "INDICATE": HTAB 3: PRINT "THAT YOU ARE": HTAB 4: PRINT "CORRECT."
2510 HTAB 6: PRINT "A COURSE": HTAB 7: PRINT "FOR EARTH": HTAB 8: PRINT "HAS BEEN": HTAB 9: PRINT "PLOTTED"
2520 HTAB 11: PRINT "WE WILL": HTAB 12: PRINT "BE HOME SOON"
2530 HTAB 1: PRINT "FOR YOUR INFORMATION": HTAB 3: PRINT "HERE IS THE REST OF": HTAB 5: PRINT "THE DATA ON THE": HTAB 7: PRINT "PLANET"
2540 SPEED= 255
2550 FOR I = 1 TO 500: NEXT I
2560 Z = 1: RETURN
3000 REM INSTRUCTIONS
3010 HOME
3015 FOR I = 1 TO 23
3020 INVERSE : PRINT "*MAROONED IN SPACE****MAROONED IN SPACE*";
3025 NEXT I
3030 NORMAL
3040 POKE 32,4
3050 VTAB 4
3060 SPEED= 100
3065 PRINT " "
3070 PRINT " IN THIS GAME YOU ARE MAROONED "
3080 PRINT " IN ORBIT AROUND AN UNKNOWN "
3090 PRINT " PLANET. A MALFUNCTION HAS "
3100 PRINT " PREVENTED YOUR COMPUTER FROM "
3110 PRINT " IDENTIFYING IT. THE COMPUTER "
3120 PRINT " CAN PROVIDE YOU WITH INFOR- "
3130 PRINT " MATION ON THE PLANET. YOU "
3140 PRINT " MUST USE THIS DATA TO FIGURE "
3150 PRINT " OUT WHICH PLANET IT IS. "
3155 PRINT " "
3160 PRINT " WHEN THE PLANET IS IDENTIFIED "
3170 PRINT " THE COMPUTER WILL BE ABLE TO "
3180 PRINT " PLOT A COURSE FOR HOME. "
3185 PRINT " "
3190 PRINT
3200 PRINT " PRESS THE SPACE BAR TO BEGIN. "
3210 IF PEEK( -16384) <127 THEN 3210
3220 POKE -16368,0
3230 SPEED= 255
3240 RETURN
4000 REM SET UP
4010 HOME
4020 INVERSE
4030 PRINT " ";
4040 FOR A = 2 TO 22: PRINT " ";: HTAB 40: PRINT " ";: NEXT A
4050 PRINT " ";
4060 NORMAL : VTAB 10: HTAB 10: PRINT " "
4070 POKE 32,29
4080 INVERSE
4090 FOR A = 2 TO 22
4100 VTAB A: PRINT " ": NEXT A
4105 POKE 32,30
4110 VTAB 2: NORMAL : PRINT "PLANETS"
4120 INVERSE : PRINT : PRINT "1.MERCURY": PRINT "2.VENUS"
4130 PRINT "3.MARS": PRINT "4.CERES": PRINT "5.PALLAS": PRINT "6.JUPITER": PRINT "7.SATURN": PRINT "8.URANUS": PRINT "9.NEPTUNE"
4140 TEXT
5000 REM THING
5010 FOR A = 1 TO 10
5020 N = INT( RND(1) *5 +1)
5030 X = INT( RND(1) *8 +31)
5040 Y = INT( RND(1) *6 +16)
5045 VTAB Y: HTAB X
5050 ON N GOTO 5060,5065,5070,5075,5080
5060 PRINT "*";: GOTO 5090
5065 PRINT " ";: GOTO 5090
5070 PRINT "@";: GOTO 5090
5075 PRINT "#";: GOTO 5090
5080 PRINT " ";
5090 NEXT A
5100 VTAB 12: HTAB 8
5110 RETURN
10000 DATA .05,.37,2.5,3000,0,.24,36
10010 DATA .81,.89,6.2,7600,0,.61,67
10020 DATA .11,.39,3.1,4200,2,1.89,67
10030 DATA .0002,.1,.4,480,0,4.6,256
10040 DATA .00005,.05,.2,300,0,4.6,257
10050 DATA 318,2.65,38,86000,12,11.86,484
10060 DATA 95,1.15,23,74000,10,29.5,895
10070 DATA 15,1,14,30000,5,84,1780
10080 DATA 17,1.55,15,28000,2,164,8,2790